home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 19 / Amiga Format CD19 (1997-10-02)(Future Publishing)(GB)(Track 1 of 5)[!][issue 1997-11].iso / -seriously_amiga- / shareware / comms / other / aminetftp / aminetftp.yam < prev   
Text File  |  1997-08-18  |  6KB  |  197 lines

  1. /* $VER: AminetRct.yam 39.1.1 (21 JUL 97)
  2. ** by Charles Patterson <midian@azstarnet.com>
  3. ** http://www.azstarnet.com/~midian
  4. **
  5. ** Description: This script finds your "Today's Aminet Upload" email in
  6. **      YAM, lists the files so you can choose which ones you want to
  7. **      download, then uses AmFTP to download the selected files.
  8. **
  9. ** Requirements: YAM 1.3.4 (© 1995-96 Marcel Beck)
  10. **               TCP/IP Stack
  11. **               rexxreqtools.library 1.3 (© 1992-94 Rafael D'Halleweyn)
  12. **               AmFTP 1.75 (© 1995-97 Mathias Michler)
  13. **
  14. ** Instructions: Send email to listproc@mail.wustl.edu with the body:
  15. **                              SUBSCRIBE aminet-daily Your Name
  16. **                           or SUBSCRIBE aminet-weekly Your Name
  17. **               Copy this file to YAM:Rexx/
  18. **               Open the YAM:.config file and add this line:
  19. **                              RexxMenu1 = YAM:Rexx/AminetFTP.yam
  20. **               Change the AMFTP, AMINET and LOCALDIR settings in script
  21. **               Download your email then run this script from the YAM
  22. **                  ARexx menu.
  23. **
  24. ** --- Path to run AmFTP: --- */
  25. AMFTP="DH2:Applications/AmFTP/AmFTP"
  26.  
  27. /* --- Local Aminet Site: --- */
  28. AMINET="wuarchive.wustl.edu"
  29.  
  30. /* --- Local directory Site: --- */
  31. LOCALDIR="DH2:Lookat"
  32.  
  33. today = "Today's Aminet "
  34. weekly = "This week's Ami"
  35.  
  36. OPTIONS RESULTS
  37.  
  38. IF ~SHOW('L','rexxsupport.library') THEN
  39.     ADDLIB('rexxsupport.library',0,-30,0)
  40.  
  41. IF ~SHOW('L','rexxreqtools.library') THEN
  42.     ADDLIB('rexxreqtools.library',0,-30,0)
  43.  
  44. NL = '0A'x
  45.  
  46. ADDRESS YAM
  47.  
  48. GETFOLDERINFO MAX
  49. IF RESULT=0 THEN
  50.     DO
  51.         RTEZREQUEST('No email in folder!')
  52.         EXIT
  53.     END
  54.  
  55. lfi = 0
  56. t = 0
  57. checkn = 0
  58. filename. = ''
  59. GETMAILINFO SUBJECT
  60. sub = LEFT(RESULT,15)
  61. IF sub = today | sub = weekly THEN
  62.     DO
  63.         RTEZREQUEST("List files in:","_Selected|_Other")
  64.         lfi = rtresult
  65.     END
  66. IF lfi THEN
  67.     DO
  68.         t = 1
  69.         GETMAILINFO FILE
  70.         filename.1 = RESULT
  71.     END
  72. ELSE
  73.     DO
  74.         RTEZREQUEST("Do you wish to check","_Today's|_Week's|All _dailys|All w_eeklys|_All|_Cancel")
  75.         checkn = rtresult
  76.         IF checkn = 0 THEN EXIT
  77.         IF checkn = 1 | checkn = 3 THEN check = today
  78.         IF checkn = 2 | checkn = 4 THEN check = weekly
  79.         GETFOLDERINFO MAX
  80.         entries = RESULT
  81.         DO n = entries-1 TO 0 BY -1
  82.             SETMAIL n
  83.             GETMAILINFO SUBJECT
  84.             sub = LEFT(RESULT,15)
  85.             IF checkn = 5 THEN
  86.                 DO
  87.                     IF sub = today | sub = weekly THEN
  88.                         DO
  89.                             t = t + 1
  90.                             GETMAILINFO FILE
  91.                             filename.t = RESULT
  92.                         END
  93.                     END
  94.             ELSE
  95.                 IF sub = check THEN
  96.                     DO
  97.                         t = t + 1
  98.                         GETMAILINFO FILE
  99.                         filename.t = RESULT
  100.                     END
  101.         END
  102.     END
  103.  
  104. IF t = 0 THEN
  105.     DO
  106.         RTEZREQUEST("Aminet Uploads email not found!")
  107.         EXIT
  108.     END
  109.  
  110. IF checkn < 3 THEN t = 1
  111.  
  112. DO mail = 1 to t
  113.     line. = ''
  114.     ADDRESS COMMAND 'COPY 'filename.mail' TO T:FTPMail.rct'
  115.     OPEN('recent','T:FTPMail.rct','R')
  116.  
  117.     DO UNTIL LEFT(READLN('recent'),3) = '|--'
  118.     END
  119.  
  120.     i=0
  121.     DO WHILE ~EOF('recent')
  122.         i=i+1
  123.         line.i=READLN('recent')
  124.         IF LEFT(line.i,1) = '|' THEN BREAK
  125.     END
  126.     CLOSE('recent')
  127.  
  128.     i = i-1
  129.     c = 0
  130.     w = i%5
  131.     IF i//5 >0 THEN w = w + 1
  132.  
  133.     DO n = 1 to w
  134.         DO f = n*5-4 to n*5
  135.             PARSE VAR line.f file.f dir.f line.f
  136.             file.f = LEFT(file.f,18,' ')
  137.             dir.f = LEFT(dir.f,9,' ')
  138.             k = INDEX(line.f,'+')
  139.             line.f = DELSTR(line.f,1,k)
  140.             line.f = LEFT(line.f,42)
  141.         END
  142.         w = f-5 ; x = f-4 ; y = f-3 ; z = f-2 ; r = f-1
  143.         input = RTGETSTRING(,w'. 'file.w' 'dir.w' 'line.w||NL||x'. 'file.x' 'dir.x' 'line.x||NL||y'. 'file.y' 'dir.y' 'line.y||NL||z'. 'file.z' 'dir.z' 'line.z||NL||r'. 'file.r' 'dir.r' 'line.r,'Enter filenumbers (ie. 1 2 5)','_Ok|_Finished|_Cancel')
  144.         IF rtresult = 2 THEN BREAK
  145.         DO WHILE input ~= ''
  146.             c = c+1
  147.             PARSE VAR input filenum.c input
  148.             j = filenum.c
  149.             IF STRIP(file.j) = '' THEN c = c-1
  150.         END
  151.     END
  152.  
  153.     close = 0
  154.     IF c > 0 THEN
  155.         DO
  156.             RTEZREQUEST("Do you want each file's .readme as well?","_Yes|_No")
  157.             read = rtresult
  158.             IF ~SHOW('P',AMFTP.1) THEN
  159.                 DO
  160.                     ADDRESS COMMAND RUN AMFTP
  161.                     ADDRESS COMMAND WAITFORPORT AMFTP.1
  162.                     close=1
  163.                 END
  164.  
  165.             ADDRESS 'AMFTP.1'
  166.             CALL OPENPORT("AMFTP-RESULT.1")
  167.             CHANGELOCALDIR LOCALDIR
  168.             CONNECTHOST AMINET
  169.             WAITACTION "AMFTP-RESULT.1"
  170.             CALL WAITPKT "AMFTP-RESULT.1"
  171.  
  172.             DO mc = 1 to c
  173.                 d = filenum.mc
  174.                 dir = STRIP(dir.d)
  175.                 file = "/pub/aminet/"dir"/"file.d
  176.                 RECEIVE file
  177.                 WAITACTION "AMFTP-RESULT.1"
  178.                 CALL WAITPKT "AMFTP-RESULT.1"
  179.                 IF read THEN
  180.                     DO
  181.                         lgt = LENGTH(COMPRESS(file))-3
  182.                         filer = LEFT(file,lgt)||"readme"
  183.                         RECEIVE filer
  184.                         WAITACTION "AMFTP-RESULT.1"
  185.                         CALL WAITPKT "AMFTP-RESULT.1"
  186.                     END
  187.             END
  188.             'CLOSE'
  189.             CALL CLOSEPORT "AMFTP-RESULT.1"
  190.             IF close THEN QUIT
  191.         END
  192.  
  193. END
  194. ADDRESS COMMAND 'DELETE T:FTPMail.*'
  195. EXIT
  196.  
  197.